FLOW OF STATE

#include
makeMap()
A:		Load map file
B:		Pass map data
C:		Draw new map


- A: Load map file -
* can:		load maps
* can't:	load chipsets,  draw map

Request map XML file
* can:		load maps (interrupts map loading)
* can't:	load chipsets,  draw map
Wait for map XML to finish loading
Map XML is loaded, then...
* can:		load chipsets,  load maps (interrupts chipset loading)
* can't:	draw map

Request chipset files
* can:		load maps (interrupts chipset loading)
* can't:	load chipsets,  draw map
Wait for all requested chipset image files to finish loading, then...
* can:		load chipsets,  load maps,  draw map
* can't:	---

draw map


- B: Pass map data -
* can:		load maps
* can't:	load chipsets,  draw map

Map XML is received, then...
* can:		load chipsets,  load maps (interrupts chipset loading)
* can't:	draw map

Request chipset files
* can:		load maps (interrupts chipset loading)
* can't:	load chipsets,  draw map
Wait for all requested chipset image files to finish loading, then...
* can:		load chipsets,  load maps,  draw map
* can't:	---

draw map


- C: Draw new map  (layer, then chipset) -
* can:		load maps
* can't:	load chipsets,  draw map

Create layer, then...
* can:		load maps,  load chipsets
* can't:	draw map

Request a chipset file
* can:		load maps (interrupts chipset loading)
* can't:	load chipsets,  draw map
Wait for all requested chipset image files to finish loading, then...
* can:		load chipsets,  load maps,  draw map
* can't:	---

draw map


- C: Draw new map  (chipset, then layer) -
* can:		load maps
* can't:	load chipsets,  draw map

Request chipset files
* can:		load maps (interrupts chipset loading)
* can't:	load chipsets,  draw map
Wait for all requested chipset image files to finish loading, then...
* can:		load chipsets,  load maps
* can't:	draw map

Create layer, then...
* can:		load chipsets,  load maps,  draw map
* can't:	---

draw map